package common

import (
	"container/list"
	"context"
	"encoding/json"
	"fmt"
	"github.com/go-redis/redis/v8"
)

//var redisClientRdb *redis.Client

var redisRingRdb *redis.Ring

func NewClient(redisYml *ConfigYml) *redis.Ring {
	opt := redisYml.RedisCache.Options()
	client := redis.NewRing(opt)
	// 创建client
	//client := redis.NewClient(opt)

	// 测试是否有效
	pong, err := client.Ping(context.TODO()).Result()
	if err != nil {
		fmt.Println(pong, err)
		return nil
	}
	redisRingRdb = client
	return client
}

func SaveData(riskInfos list.List) {
	if redisRingRdb == nil {
		fmt.Println("redisClientRdb is nil")
		return
	}
	redisRingRdb.FlushAll(context.TODO())
	for info := riskInfos.Front(); info != nil; info = info.Next() {
		data, _ := json.Marshal(info)
		s := string(data)
		fmt.Println("缓存的数据：")
		fmt.Println(s)
		redisRingRdb.RPush(context.TODO(), "redisInfos", s, 0)
	}
}

func CloseClient() {
	if redisRingRdb == nil {
		fmt.Println("redisClientRdb is nil")
		return
	}
	redisRingRdb.Close()
}

//var rdb *redis.Client
//
//func init() {
//	rdb = new(redis.Client)
//	rdb = redis.NewClient(&redis.Options{
//		Addr:     "localhost:6379",
//		Password: "", // no password set
//		DB:       0,  // use default DB
//	})
//	println(rdb.ClientID())
//}
//
//func SaveData(riskInfos list.List) {
//	for info := riskInfos.Front(); info != nil; info = info.Next() {
//		data, _ := json.Marshal(info)
//		s := string(data)
//		fmt.Println(s)
//		rdb.RPush("redisInfos", s, 0)
//	}
//}
